ead915
@@ -72,7 +72,9 @@
public class TaskMonitor {
         new Class<?>[] { MonitoredTask.class },
         new PassthroughInvocationHandler<MonitoredTask>(stat));
     TaskAndWeakRefPair pair = new TaskAndWeakRefPair(stat, proxy);
-    tasks.add(pair);
+    synchronized (this) {
+      tasks.add(pair);
+    }
     return proxy;
   }
 
@@ -84,7 +86,9 @@
public class TaskMonitor {
         new Class<?>[] { MonitoredRPCHandler.class },
         new PassthroughInvocationHandler<MonitoredRPCHandler>(stat));
     TaskAndWeakRefPair pair = new TaskAndWeakRefPair(stat, proxy);
-    tasks.add(pair);
+    synchronized (this) {
+      tasks.add(pair);
+    }
     return proxy;
   }
 
@@ -142,7 +146,7 @@
public class TaskMonitor {
   public void dumpAsText(PrintWriter out) {
     long now = System.currentTimeMillis();
     
-    List<MonitoredTask> tasks = TaskMonitor.get().getTasks();
+    List<MonitoredTask> tasks = getTasks();
     for (MonitoredTask task : tasks) {
       out.println("Task: " + task.getDescription());
       out.println("Status: " + task.getState() + ":" + task.getStatus());
